Recognizing a face and providing feedback on the face-recognition process

ABSTRACT

One or more images including a user&#39;s face are captured, and at least one of these images is displayed to the user. These image(s) are used by a face-recognition algorithm to identify or recognize the face in the image(s). The face-recognition algorithm recognizes various features of the face and displays an indication of at least one of those features while performing the face-recognition algorithm. These indications of features can be, for example, dots displayed on the captured image. Additionally, an indication of progress of the face-recognition algorithm is displayed near the user&#39;s face. This indication of progress of the face-recognition algorithm can be, for example, a square or other geometric shape in which at least a portion of the user&#39;s face is located.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. Section 119(e) to U.S.Provisional Application No. 62/314,899, filed Mar. 29, 2016 and titled“Recognizing A Face And Providing Feedback On The Face-RecognitionProcess”, the entire disclosure of which is hereby incorporated byreference.

BACKGROUND

As computing technology has advanced, computers have become increasinglycommonplace. Given the large amounts of data that can be stored oncomputers, and the access to various resources or functionality thatcomputers provide, users oftentimes desire to protect their computers sothat they cannot be used by others.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In accordance with one or more aspects, an image of a face is obtainedand a face-recognition algorithm that recognizes features of the face iscommenced. In conjunction with recognizing a feature of the face, anindication of the feature is displayed on a rendering of the face. Anindication of progress of the face-recognition algorithm is displayednear the rendering of the face.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.Entities represented in the figures may be indicative of one or moreentities and thus reference may be made interchangeably to single orplural forms of the entities in the discussion.

FIG. 1 illustrates an example system implementing the recognizing a faceand providing feedback on the face-recognition process in accordancewith one or more implementations.

FIGS. 2, 3, 4, 5, 6, 7, 8, and 9 illustrate examples of displays of theface of the user by the display module in accordance with one or moreembodiments.

FIG. 10 is a flowchart illustrating an example process for recognizing aface and providing feedback on the face-recognition process inaccordance with one or more implementations.

FIG. 11 illustrates an example system generally that includes an examplecomputing device that is representative of one or more systems and/ordevices that may implement the various techniques described herein.

DETAILED DESCRIPTION

Techniques for recognizing a face and providing feedback on theface-recognition process are described herein. A user can have his orher face identified and used by a computing device or system. The deviceor system can use the identified face as, for example, authentication orauthorization to perform a particular task (e.g., log into a device orsystem, for payment of a bill or other transaction), a record of theuser, and so forth.

One or more images including the user's face are captured, and the oneor more images can be captured by multiple cameras or alternatively thesame camera. At least one of these captured images is displayed to theuser. The one or more captured images can be, for example, frames ofvideo. These image(s) are used by a face-recognition algorithm toidentify or recognize the face in the image(s). The images used by theface-recognition algorithm can be captured by a different camera thanthe images that are displayed to the user, or alternatively the imagescaptured by a camera and displayed to the user can also be used by theface-recognition algorithm.

The face-recognition algorithm recognizes various features of the faceand displays an indication of at least one of those features whileperforming the face-recognition algorithm. These indications of featurescan be, for example, dots displayed on the captured image. Additionally,an indication of progress of the face-recognition algorithm is displayednear the user's face. This indication of progress of theface-recognition algorithm can be, for example, the drawing of a squareor other geometric shape in which at least a portion of the user's faceis located, the filling in of a bounding box or other geometric shape inwhich at least a portion of the user's face is located, and so forth.

The techniques discussed herein provide feedback to a user as to theprogress of the face-recognition algorithm and features of the user'sface that are used by the face-recognition algorithm. This providesvaluable feedback to the user that the face-recognition algorithm isoperating, allowing the user to remain positioned appropriately andreducing the time taken to identify the user's face, and thus reducesenergy usage and improves battery life for the computing device.

FIG. 1 illustrates an example system 100 implementing the recognizing aface and providing feedback on the face-recognition process inaccordance with one or more implementations. System 100 includes aface-recognition system 102 that includes an image capture device 104, aface-recognition module 106, and a display module 108. Theface-recognition system 102 can be implemented as a single computingdevice or across multiple computing devices. A variety of differenttypes of devices can be used to implement the camera face-recognitionsystem 102, such as a desktop computer, a server computer, a laptop ornetbook computer, a mobile device (e.g., a tablet or phablet device, acellular or other wireless phone (e.g., a smartphone), a notepadcomputer, a mobile station), a wearable device (e.g., eyeglasses, watch,bracelet, head-mounted display), an entertainment device (e.g., anentertainment appliance, a set-top box communicatively coupled to adisplay device, a game console), a television or other display device,an automotive computer, an Internet of Things (IoT) device, and soforth.

The image capture device 104 can be any of a variety of different typesof image capture devices capturing images in the visible light spectrum,infrared (IR) spectrum, and so forth. For example, the image capturedevice 104 can be an IR camera, an RGB (Red Green Blue) camera, and soforth. In one or more embodiments, the image capture device 104 includesboth an IR camera and an RGB camera. Additionally or alternatively, theface-recognition system 102 can include multiple image capture devices104, at least one of which includes an IR camera and at least another ofwhich includes an RGB camera. The image capture device 104 can be asingle-sensor camera or a stereoscopic camera, and can use variousdigital imaging technologies (e.g., charge-coupled devices (CCDs),complementary metal-oxide-semiconductor (CMOS) sensors, and so forth).The image capture device 104 also optionally includes (or has associatedtherewith for running on a different device) various software and/orfirmware.

In one or more implementations, the image capture device 104 and theuser face-recognition module 106 and display module 108 are implementedas part of the same device, such as part of a mobile device.Alternatively, the image capture device 104 and one or both of the userface-recognition module 106 and the display module 108 are implementedas separate devices. For example, the image capture device 104 can beimplemented as part of a wearable device and the face-recognition module106 and display module 108 can be implemented as part of mobile device,the image capture device 104 can be implemented as a standalone cameraand the face-recognition module 106 and display module 108 can beimplemented as part of a desktop device, the image capture device can beimplemented as a standalone camera and the face-recognition module 106can be implemented as a mobile or wearable device and the display module108 can be implemented as a separate monitor or screen, and so forth.When implemented as separate devices, the devices implementing the imagecapture device 104, the face-recognition module 106, and/or the displaymodule 108 can communicate with one another via a wired or wirelessconnection, such as a USB (universal serial bus) connection, a wirelessUSB connection, an infrared connection, a Bluetooth connection, aDisplayPort connection, a PCI (a peripheral component interconnect)Express connection, and so forth. The image capture device 104, theface-recognition module 106, and/or the display module 108 canalternatively or additionally be connected to one another via a datanetwork, such as a personal area network.

In one or more embodiments, face-recognition system 102 is part of, orin communication with, an authentication module 110. Such anauthentication module 110 can be used to restrict access to a particulardevice, resource, location, and so forth. For example, face-recognitionsystem 102 can be used with an authentication module 110 that restrictswhich users can access (e.g., log into or unlock) a particular device,which users can access (e.g., enter) a particular building, which userscan access (e.g., log into) a particular network, which users can accessfunctionality of a particular device (e.g., a heating and coolingsystem), and so forth. Such an authentication module 110 can alsorestrict access to a particular service, such as a remote service (e.g.,a Web site accessed via the Internet), a local payment terminal (e.g.,at a brick and mortar store to authorize payment from an electronicwallet or other payment source). For example, a child using a computingdevice may send a request to a parent to buy an application or otheritem, and the authentication module 110 authenticates the parent inobtaining the parent's approval for the purchase. By way of anotherexample, the child may hand his or her computing device to the parent,and an authentication module 110 on the computing device authenticatesthe parent in obtaining the parent's approval for the purchase.

The image capture device 104 captures multiple images each including atleast part of the face of a user 112. In one or more embodiments, thesemultiple images are frames of video (e.g., captured at 30 frames persecond). The images include various features of the user's face. Afeature of the user's face refers to a characteristic of the user's facethat can be used to differentiate users from one another. For example,features can be the location or size of at least part of an eye, thelocation or size of at least part of a nose, a location or pattern of atleast part of a vein, a location or size of at least part of a scar (orother mark) on skin, measurements of various facial features (e.g.,distances between facial features), and so forth. Various differentfeatures of the user can be analyzed by the authentication module 110 toauthenticate the user 112, such as features of the user's face, featuresof the user's eye, features of the user's iris, and so forth.

The face-recognition module 106 uses one or more images captured by theimage capture device 104 to recognize the face of the user 112.Recognizing the face of the user 112 refers to, for example, generatingvarious data based on the features of the user's face that allows theuser's face to be distinguished from faces of other people (e.g., otherusers). In one or more embodiments, the face-recognition module 106 usesa single image of the face of the user 112, although alternatively theface-recognition module 106 uses multiple images of the face of the user112. The face-recognition module 106 implements any of a variety ofdifferent public and/or proprietary face-recognition algorithms torecognize the face of the user 112 as indicated in an image(s) capturedby the image capture device 104. For example, face-recognitionalgorithms that can be used can be linear discriminate analysisalgorithms, hidden Markov model algorithms, and so forth.

In one or more embodiments, the face-recognition module 102 stores facedata 114 for the user 112 in a data store 116. The face data 114 for auser includes data regarding the features of that user's face and/orother settings or criteria used by the face-recognition module 106 inrecognizing the face of the user 112, and which can be subsequentlyaccessed and compared to detected features of a subsequent user (whichmay or may not be the same user as the user for which the face data 114is stored) to determine whether the subsequent user is the useridentified by the face data 114. Alternatively, rather than storing facedata 114 in the data store 116, the authentication module 110determines, based on the face recognized by the face-recognition module106 and the face data 114, whether to authenticate the user.

The display module 108 displays the face of the user 112 (also discussedor referred to herein as the display module 108 rendering the face ofthe user 112). The display of the face of the user 112 can be, forexample, at least one of the images captured by the image capture device104. In one or more embodiments, the display module 108 displays theimages in the same format as they are captured by the image capturedevice 104 (e.g., RGB captured images are displayed as RGB images by thedisplay module 108). The display module 108 can display a single imagecaptured by the image capture device 104 (e.g., a single image that isbeing used by the face-recognition module 106) or alternatively thedisplay module 108 can display multiple images. For example, the imagecapture device 104 may capture video (e.g., 30 images or frames persecond) of the user 112 and display module 108 can display the capturedvideo. Regardless of how many images are displayed by the display module108, the face-recognition module 106 can analyze multiple ones of theframes of captured video, or alternatively a single frame of capturedvideo to recognize the face of the user 112. Thus, for example, thedisplay module 108 may display video of the user 112 even though only asingle frame or image of that video is used by the face-recognitionmodule 106 to recognize the face of the user 112.

In one or more embodiments, the image capture device 104 includes twodifferent types of cameras (e.g., an IR camera and an RGB camera). Theone or more images captured by the IR camera are provided to theface-recognition module 106, which uses the IR images to recognize theface of the user. However, the one or more images captured by the RGBcamera are provided to the display module 108 for display to the user(e.g., for rendering the face of the user).

The display module 108 also displays indications of features of the faceof the user 112 being used by the face-recognition module 106. Anindication of the locations of the features of the face being used bythe face-recognition module 106 can be obtained by the display module108 in different manners, such as from the face-recognition module 106.The features used by the face-recognition module 106 can be the same fordifferent users, or different features (or combinations of features) canbe used for different users. In one or more embodiments, the indicationsdisplayed by the display module 108 are dots (e.g., small squares,circles, or other geometric shapes overlaying the features). Forexample, the display module 108 can display an indication of thefeatures on a rendering of the face of the user 112 by displaying one ormore dots on the rendering of the face next to (e.g., within a thresholddistance of) at least one of an eye of the face of the user, a nose ofthe face of the user, a mouth of the face of the user, and so forth.

Additionally or alternatively, the indications of features displayed bythe display module 108 can take other forms, such as a change in thebrightness or color of the feature (e.g., increasing the brightness ofthe locations of a screen or display device where the feature of theface of the user 112 is displayed), an outline of the feature (e.g.,displaying a line or geometric shape substantially or at least partiallysurrounding the feature), and so forth.

Additionally or alternatively, the indications of features displayed bythe display module 108 can be a graph that substantially covers theuser's face as displayed by the display module 108. The graphsubstantially covering the user's face comprises the graph covering atleast a threshold percentage (e.g., 75% or 80%) of the user's face. Thegraph can be a square, rectangle, ellipse, circle, or other geometricshape. The graph has multiple interior lines, also referred to as agrid. In one or more embodiments, at the beginning of theface-recognition module 106 performing the face-recognition, theindication of features displayed by the display module 108 is a graphthat substantially covers the user's face. As individual features in theuser's face are identified by the face-recognition module 106, thedisplay module ceases displaying the graph and begins displaying dotsnext to (and/or overlaying) individual features of the user's face. Thetransition from displaying the graph to displaying the dots can beabrupt or a smooth transition (e.g., the graph can fade out and/or thedots can fade in). Thus, while the user's face is displayed, the displaymodule 108 transitions from displaying the graph to displaying the dotsnext to (and/or overlaying) individual features of the user's face.

In one or more embodiments, in situations in which the face-recognitionmodule 106 recognizes the face of a user from one or more imagescaptured by a first type of camera (e.g., an IR camera) and the displaymodule 108 displays one or more images captured by a second type ofcamera (e.g., an RGB camera), a translation is made by theface-recognition system 102 (e.g., by the face-recognition module 106and/or the display module 108) from the first type of camera to thesecond type of camera. Because two different types of cameras are usedin this situation, the captured images are of slightly different areas(e.g., due to the cameras being pointed in directions that differ by afew degrees, due to the cameras being situated in different locations(e.g., which may be several inches apart), etc.). The translationaccounts for this, allowing the face-recognition system 102 to knowwhich pixels captured by the first type of camera correspond to whichpixels of the second type of camera. For example, the face-recognitionsystem 102 can readily determine a set of pixels in an image captured bythe first type of camera correspond to a particular feature (e.g., acorner of the user's mouth), and use the translation to determine whichpixels of an image captured by the second type of camera correspond tothe set of pixels in the image captured by the first type of camera, andthus which pixels in the image captured by the second type of cameracorrespond to the particular feature (e.g., a corner of the user'smouth).

This translation can be performed using any of a variety of publicand/or proprietary techniques. In one or more embodiments, thistranslation is performed by normalizing the locations in the imagecaptured by the first type of camera. The locations of features in theimage captured by the first type of camera are normalized, and thecorresponding locations in the image captured by the second type ofcamera and displayed by the face-recognition system 102 (e.g., by thedisplay module 108) are determined by multiplying the normalizedlocations by the width and height of the frame or display area in whichthe image captured by the second type of camera is displayed. Thismultiplication results in x, y coordinates of the locations, in theimage captured by the second type of camera and displayed by theface-recognition system 102, of the indications of features of the faceof the user 112 being used by the face-recognition module 106.

The face-recognition system 102 (e.g., the display module 108) providesvarious feedback to the user regarding the progress made by theface-recognition module 106 in recognizing the face of the user 112.This feedback lets the user 112 know that the face recognition progressis in-process and that the face-recognition module 106 is working on it.This feedback also lets the user 112 know at least some of theinformation regarding the user that the face-recognition system 102 isrelying on. For example, a rectangle, square, or other geometric shapeis displayed approximately (e.g., within a threshold number of pixelsof) the display of the user's face, informing the user of the area inthe image(s) that the face-recognition system 102 is using as the user'sface. By way of another example, indications of features of the face ofthe user 112 being used by the face-recognition module 106 aredisplayed, letting the user know where the face-recognition system 102has identified various features of the user's face (e.g., the user'smouth, eyes, etc.).

FIGS. 2-9 illustrate examples of displays of the face of the user by thedisplay module 108 in accordance with one or more embodiments. Variousdifferent additional information, such as indications of features usedby the face-recognition algorithm and/or the progress of theface-recognition algorithm, is also displayed as discussed withreference to the individual ones of FIGS. 2-9. FIGS. 2-9 are discussedwith additional reference to elements of FIG. 1. In one or moreembodiments, FIGS. 2-8 illustrate the progression of various indicationsdisplayed by the display module while the face-recognition module 106 isrecognizing the face of the user. The order of progression is the orderof the FIG. numbers, so the display of FIG. 2 is displayed first, thenthe display of FIG. 3, then the display of FIG. 4, and so forth. Itshould be noted, however, that the displays in FIGS. 2-8 are notexhaustive—multiple additional displays may be displayed in between anytwo of FIGS. 2-8.

FIG. 2 illustrates an example display 202 of the face of the user. Thedisplay 202 is, for example, an image of the user captured by the imagecapture device 104.

FIG. 3 illustrates an example display 302 of the face of the user, thedisplay 302 including a graph 304 that substantially covers the user'sface. As illustrated in FIG. 3, the graph 304 is a square with interiorgrid lines. In one or more embodiments, the display 302 is displayedafter the display 202 is displayed and after the face-recognition module106 has identified an approximate boundary of the user's face. In one ormore embodiments, display of the graph 304 provides an indication to theuser that an approximate boundary of his or her face has been identifiedby the face-recognition module 106, and optionally that identificationof features within the user's face will begin (or has recently begin).

FIG. 4 illustrates an example display 402 of the face of the user, thedisplay 402 including multiple indications of features used by theface-recognition module 106. These indications of features areillustrated as dots, such as dot 404 (at the corner of the user's eye)and dot 406 (at the corner of the user's mouth). As illustrated in FIG.4, the dots can be the same or different sizes, and can be the same ordifferent brightnesses (or intensities). Also as illustrated in FIG. 4,the graph 304 of FIG. 3 is also no longer displayed (or is being fadedout). In one or more embodiments, the display 402 is displayed after thedisplay 302 is displayed and after the face-recognition module 106 hasidentified at least a threshold number (e.g., at least one) feature ofthe user's face. In one or more embodiments, display of the dots and/orceasing display of the graph 304 provides an indication to the user thatone or more features of the user's face have been identified andrecognition of the user based on those features will begin (or hasrecently begin).

Returning to FIG. 1, in one or more embodiments the display module 108varies the display of the indications of features (e.g., the dots inFIG. 4) over time. This variance can be a change in size, brightness,intensity, color, and so forth of the displayed indications. In one ormore embodiments, the display of the indications of features varies soas to appear to be moving or passing over the face of the user.

The display module 108 also displays, concurrently with the display ofone or more images of the face of the user 112, an indication ofprogress of the face-recognition module 106. This indication isdisplayed near (e.g., within a threshold distance of) the face of theuser being displayed by the display module 108. An indication of anamount of time that the face-recognition module 106 is expected to taketo recognize the face of the user 112 is obtained by the display module108, and the display module 108 uses this indication of the amount oftime to update the indication of progress of the face-recognition module106.

The amount of time that the face-recognition module 106 is expected totake to recognize the face of the user 112 can be determined in avariety of different manners. In one or more embodiments, theface-recognition module 106 and/or display module 108 is configured withthe amount of time (e.g., an average amount of time that theface-recognition module 106 takes as determined by the developer ordesigner of the face-recognition module 106). Additionally oralternatively, the face-recognition module 106 can dynamically determinethe expected amount of time to recognize the face of the user 112 basedon various different criteria (e.g., an amount of time that theface-recognition module 106 takes to identify the features of the faceof the user 112, a number and/or type of features of the face of theuser 112 that have been identified by the face-recognition module 106,etc.) and provide the determined expected amount of time to the displaymodule 108.

The display module 108 displays an indication of progress of theface-recognition module 106 based on the expected amount of time torecognize the face of the user 112 and an amount of time that haselapsed since face-recognition of the user's face began (e.g., asindicated to the display module 108 by the face-recognition module 106).In one or more embodiments, the indication is a line, bar, or otherobject that is filled or completed as the face-recognition progresses.This completing or filing can be performed approximately linearly (e.g.,within a threshold amount of being linear), so that when the recognitionof the face of the user is 10% done the line, bar, or other object is10% filled or completed, when the recognition of the face of the user is40% done the line, bar, or other object is 40% filled or completed, whenthe recognition of the face of the user is 80% done the line, bar, orother object is 80% filled or completed, and so forth.

Additionally or alternatively, the face-recognition module 106 canprovide to the display module 108 indications of the progress of theface-recognition module 106 as the face-recognition module 106progresses to recognize the face of the user. For example, theface-recognition module 106 may provide an indication to the displaymodule 108 when the face-recognition module 106 is 10% done, when theface-recognition module 106 is 15% done, when the face-recognitionmodule 106 is 20% done, and so forth.

In one or more embodiments, the display module 108 displays theindication of progress of the face-recognition module 106 near (e.g.,within a threshold distance of) the user's face as displayed by thedisplay module 108. In one or more embodiments, the indication ofprograms of the face-recognition module 106 is a square or othergeometric shape (e.g., rectangle, oval, etc.) in which at least aportion of the face of the user is located, such as a portion thatsubstantially surrounds the user's face (e.g., surrounding at least athreshold percentage (e.g., 75% or 80%) of the user's face). This squareor other geometric shape can be, for example, the edges (e.g.,perimeter) of the graph that substantially covers the user's face (e.g.,the graph 304 of FIG. 3).

FIG. 5 illustrates an example display 502 of the face of the user. Thedisplay 502 includes both multiple indications of features used by theface-recognition module 106, and an indication of the progress of theface-recognition module 106. The indications of features are illustratedas dots (e.g., as discussed above with respect to FIG. 4). Asillustrated in FIG. 5, the graph 304 of FIG. 3 is also no longerdisplayed. Also as illustrated in FIG. 5, the indication of progress ofthe face-recognition module 106 is displayed as a square near the faceof the user. One edge 504 and part 506 of another edge of the square isillustrated in FIG. 5, indicating that the progress of theface-recognition module 106 is a little more than 25% done. In one ormore embodiments, the display 502 is displayed after the display 402 isdisplayed and after the face-recognition module 106 has started the facerecognition process given the identified features (e.g., as indicated bythe displayed dots).

FIG. 6 illustrates an example display 602 of the face of the user. Thedisplay 602 includes both multiple indications of features used by theface-recognition module 106, and an indication of the progress of theface-recognition module 106. The indications of features are illustratedas dots (e.g., as discussed above with respect to FIG. 4). Asillustrated in FIG. 6, the indication of progress of theface-recognition module 106 is displayed as a square near the face ofthe user. Two edges 604 and 606 and part 608 of another edge of thesquare are illustrated in FIG. 6, indicating that the progress of theface-recognition module 106 is a little more than 50% done. In one ormore embodiments, the display 602 is displayed after the display 502 isdisplayed and the face-recognition module 106 progressed in recognizingthe face of the user.

FIG. 7 illustrates an example display 702 of the face of the user. Thedisplay 702 includes both multiple indications of features used by theface-recognition module 106, and an indication of the progress of theface-recognition module 106. The indications of features are illustratedas dots (e.g., as discussed above with respect to FIG. 4). Asillustrated in FIG. 7, the indication of progress of theface-recognition module 106 is displayed as a square near the face ofthe user. Two edges 704 and 706 and part 708 of another edge of thesquare are illustrated in FIG. 7, indicating that the progress of theface-recognition module 106 is approximately 65% done. In one or moreembodiments, the display 702 is displayed after the display 602 isdisplayed and the face-recognition module 106 progressed in recognizingthe face of the user.

FIG. 8 illustrates an example display 802 of the face of the user. Thedisplay 802 includes an indication of the progress of theface-recognition module 106. As illustrated in FIG. 8, the indication ofprogress of the face-recognition module 106 is displayed as a squarenear the face of the user. The square is illustrated as completed (e.g.,all four edges have been drawn or displayed), indicating that theprogress of the face-recognition module 106 is done. In one or moreembodiments, the display 802 is displayed after the display 702 isdisplayed and the face-recognition module 106 has completed recognizingthe face of the user. The indications of features used by theface-recognition module 106 are not included in the display 802,providing further indication that the face-recognition module 106 hascompleted recognizing the face of the user.

It should be noted that although illustrated as a square surrounding atleast part of the user's face, the indication of the progress of theface-recognition module 106 can be displayed in other manners. Forexample, a geometric shape other than the square can be displayed. Byway of another example, a vertical or horizontal bar near (e.g., withina threshold distance of) the user's face as displayed by the displaymodule 108 can be filled or completed. Such a vertical or horizontal barmay be adjacent to a side, top, or bottom of the user's face, may bedisplayed across the user's face, and so forth. By way of anotherexample, rather than drawing the geometric shape as the face-recognitionmodule 106 progresses with recognizing the face, the geometric shape canbe fully drawn with the edges being hollow, and then the edges arefilled in to show the progress made by the face-recognition module 106.

For example, FIG. 9 illustrates an example display 902 of the face ofthe user. The display 902 includes both multiple indications of featuresused by the face-recognition module 106, and an indication of theprogress of the face-recognition module 106. The indications of featuresare illustrated as dots (e.g., as discussed above with respect to FIG.4). The display 902 is similar to the display 602 of FIG. 6, except thatthe indication of progress of the face recognition module 106 isdisplayed as a bounding box with an opaque progress bar drawing over it,the bounding box being filled as the face-recognition module 106progresses with recognizing the face.

As illustrated in FIG. 9, the indication of progress of theface-recognition module 106 is displayed as a bounding box 904 near theface of the user. The bounding box is filled in (shown by hash marks) alittle more than 50%, indicating that the progress of theface-recognition module 106 is a little more than 50% done. The boundingbox 904 being completely filled in indicates that the face-recognitionmodule 106 has finished the face recognition process. Thus, rather thana box or other geometric shape that is drawn around the face of the userto show the indication of the progress of the face-recognition module106 as shown in FIGS. 5-8, the indication of the progress of theface-recognition module 106 can be shown by filling in the opaqueprogress bar.

In the illustrated examples of FIGS. 2-9, individual images are shown.It should be noted, however, that rather than displaying a single imageof the user, the display module 108 can display multiple images (e.g.,frames of video) as the user's face is being recognized. The graph (asshown in FIG. 3), the indications of features (e.g., dots as shown inFIG. 4), and the indication of progress (e.g., the square being drawnaround the user's face or the bounding box being filled in) aredisplayed on the individual ones of the multiple images (e.g.,individual frames of the video). If the user 112 moves during the facerecognition process, the display module updates the location of thegraph, the indications of features, and the indication of progresscorrespondingly as appropriate so that the graph continues tosubstantially cover the user's face, the indications of featurescontinue to be displayed at the locations where those features aredisplayed in the one or more images, and the indication of progresscontinues to be displayed near the face of the user.

In the discussion herein, reference is made to recognizing a face of auser. It should be noted that the techniques discussed herein can beapplied analogously to recognize, in addition to or in place ofrecognizing a face of a user, other objects or characteristics of auser. For example, the techniques discussed herein can be used torecognize the eye or iris of a user, and display indications of featuresof the eye or iris as well as displaying an indication of progress ofrecognition of the eye or iris. By way of another example, thetechniques discussed herein can be used to recognize the fingerprint orhandprint of a user, and display indications of features of thefingerprint or handprint as well as displaying an indication of progressof recognition of the fingerprint or handprint.

FIG. 10 is a flowchart illustrating an example process 1000 forrecognizing a face and providing feedback on the face-recognitionprocess in accordance with one or more implementations. Process 1000 iscarried out by a face-recognition system, such as face-recognitionsystem 102 of FIG. 1, and can be implemented in software, firmware,hardware, or combinations thereof. Process 1000 is shown as a set ofacts and is not limited to the order shown for performing the operationsof the various acts. Process 1000 is an example process for recognizinga face and providing feedback on the face-recognition process;additional discussions of recognizing a face and providing feedback onthe face-recognition process are included herein with reference todifferent figures.

In process 1000, an image of a user's face is obtained (act 1002). Theimage is captured by one or more of various different image capturedevices as discussed above.

A face-recognition algorithm that recognizes one or more features of theface is commended (act 1004). The face-recognition algorithm isimplemented by, for example, the face-recognition module 106 of FIG. 1.Various different features of the user's face can be recognized asdiscussed above. A graph that substantially covers the user's face isalso displayed in act 1004 (e.g., in response to an approximate boundaryof the user's face being identified).

In conjunction with recognizing a feature of the user's face, anindication of the feature is displayed on a display or rendering of theface (act 1006). The user's face is displayed as discussed above, andvarious indications of the features in the face can be displayed (e.g.,dots) overlaying or adjacent to the features are displayed. In one ormore embodiments, this display or rendering of the face is the displayor rendering of images captured by one type of camera (e.g., an RGBcamera) that is different than the type of camera (e.g., an IR camera)being used to capture images that are analyzed by the face-recognitionalgorithm.

An indication of the progress of the face-recognition algorithm is alsodisplayed near the displayed face (act 1008). The indication of theprogress of the face-recognition algorithm can be displayed in variousmanners as discussed above, such as edges of a square in which at leasta portion of the user's face is located.

Face data regarding the features of the user's face is optionally storedin a data store (act 1010). This face data can be subsequently used toauthenticate or recognize the user at a later time.

Access to a resource is optionally controlled based on whether theuser's face is recognized (e.g., authenticated) (act 1012). Thisresource can be, for example, a computing device on which theface-recognition system is implemented, another device or service, andso forth. Additionally or alternatively, actions other than controllingaccess to a resource can be performed, such as storing a maintaining arecord of the user's face.

Although particular functionality is discussed herein with reference toparticular modules, it should be noted that the functionality ofindividual modules discussed herein can be separated into multiplemodules, and/or at least some functionality of multiple modules can becombined into a single module.

Additionally, a particular module discussed herein as performing anaction includes that particular module itself performing the action, oralternatively that particular module invoking or otherwise accessinganother component or module that performs the action (or performs theaction in conjunction with that particular module). Thus, a particularmodule performing an action includes that particular module itselfperforming the action and/or another module invoked or otherwiseaccessed by that particular module performing the action.

FIG. 11 illustrates an example system generally at 1100 that includes anexample computing device 1102 that is representative of one or moresystems and/or devices that may implement the various techniquesdescribed herein. The computing device 1102 may be, for example, aserver of a service provider, a device associated with a client (e.g., aclient device), an on-chip system, and/or any other suitable computingdevice or computing system.

The example computing device 1102 as illustrated includes a processingsystem 1104, one or more computer-readable media 1106, and one or moreI/O Interfaces 1108 that are communicatively coupled, one to another.Although not shown, the computing device 1102 may further include asystem bus or other data and command transfer system that couples thevarious components, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 1104 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 1104 is illustrated as including hardware elements 1110 that maybe configured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 1110 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable media 1106 is illustrated as includingmemory/storage 1112. The memory/storage 1112 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage 1112 may include volatile media (such as random accessmemory (RAM)) and/or nonvolatile media (such as read only memory (ROM),Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage 1112 may include fixed media (e.g., RAM, ROM, a fixedhard drive, and so on) as well as removable media (e.g., Flash memory, aremovable hard drive, an optical disc, and so forth). Thecomputer-readable media 1106 may be configured in a variety of otherways as further described below.

The one or more input/output interface(s) 1108 are representative offunctionality to allow a user to enter commands and information tocomputing device 1102, and also allow information to be presented to theuser and/or other components or devices using various input/outputdevices. Examples of input devices include a keyboard, a cursor controldevice (e.g., a mouse), a microphone (e.g., for voice inputs), ascanner, touch functionality (e.g., capacitive or other sensors that areconfigured to detect physical touch), a camera (e.g., which may employvisible or non-visible wavelengths such as infrared frequencies todetect movement that does not involve touch as gestures), and so forth.Examples of output devices include a display device (e.g., a monitor orprojector), speakers, a printer, a network card, tactile-responsedevice, and so forth. Thus, the computing device 1102 may be configuredin a variety of ways as further described below to support userinteraction.

The computing device 1102 also includes a face-recognition system 1114.The face-recognition system 1114 provides various functionality forrecognizing a face and providing feedback on the face-recognitionprocess as discussed above. The face-recognition system 1114 can be, forexample, the face-recognition system 102 of FIG. 1.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of computing platforms having a varietyof processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 1102. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” refers to media and/or devices thatenable persistent storage of information and/or storage that istangible, in contrast to mere signal transmission, carrier waves, orsignals per se. Thus, computer-readable storage media refers tonon-signal bearing media. The computer-readable storage media includeshardware such as volatile and non-volatile, removable and non-removablemedia and/or storage devices implemented in a method or technologysuitable for storage of information such as computer readableinstructions, data structures, program modules, logic elements/circuits,or other data. Examples of computer-readable storage media may include,but are not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, hard disks, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or other storage device,tangible media, or article of manufacture suitable to store the desiredinformation and which may be accessed by a computer.

“Computer-readable signal media” refers to a signal-bearing medium thatis configured to transmit instructions to the hardware of the computingdevice 1102, such as via a network. Signal media typically may embodycomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, the hardware elements 1110 andcomputer-readable media 1106 are representative of instructions,modules, programmable device logic and/or fixed device logic implementedin a hardware form that may be employed in some implementations toimplement at least some aspects of the techniques described herein.Hardware elements may include components of an integrated circuit oron-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardwaredevices. In this context, a hardware element may operate as a processingdevice that performs program tasks defined by instructions, modules,and/or logic embodied by the hardware element as well as a hardwaredevice utilized to store instructions for execution, e.g., thecomputer-readable storage media described previously.

Combinations of the foregoing may also be employed to implement varioustechniques and modules described herein. Accordingly, software,hardware, or program modules and other program modules may beimplemented as one or more instructions and/or logic embodied on someform of computer-readable storage media and/or by one or more hardwareelements 1110. The computing device 1102 may be configured to implementparticular instructions and/or functions corresponding to the softwareand/or hardware modules. Accordingly, implementation of modules as amodule that is executable by the computing device 1102 as software maybe achieved at least partially in hardware, e.g., through use ofcomputer-readable storage media and/or hardware elements 1110 of theprocessing system. The instructions and/or functions may beexecutable/operable by one or more articles of manufacture (for example,one or more computing devices 1102 and/or processing systems 1104) toimplement techniques, modules, and examples described herein.

As further illustrated in FIG. 11, the example system 1100 enablesubiquitous environments for a seamless user experience when runningapplications on a personal computer (PC), a television device, and/or amobile device. Services and applications run substantially similar inall three environments for a common user experience when transitioningfrom one device to the next while utilizing an application, playing avideo game, watching a video, and so on.

In the example system 1100, multiple devices are interconnected througha central computing device. The central computing device may be local tothe multiple devices or may be located remotely from the multipledevices. In one or more implementations, the central computing devicemay be a cloud of one or more server computers that are connected to themultiple devices through a network, the Internet, or other datacommunication link.

In one or more implementations, this interconnection architectureenables functionality to be delivered across multiple devices to providea common and seamless experience to a user of the multiple devices. Eachof the multiple devices may have different physical requirements andcapabilities, and the central computing device uses a platform to enablethe delivery of an experience to the device that is both tailored to thedevice and yet common to all devices. In one or more implementations, aclass of target devices is created and experiences are tailored to thegeneric class of devices. A class of devices may be defined by physicalfeatures, types of usage, or other common characteristics of thedevices.

In various implementations, the computing device 1102 may assume avariety of different configurations, such as for computer 1116, mobile1118, television 1120, and IoT 1122 uses. Each of these configurationsincludes devices that may have generally different constructs andcapabilities, and thus the computing device 1102 may be configuredaccording to one or more of the different device classes. For instance,the computing device 1102 may be implemented as the computer 1116 classof a device that includes a personal computer, desktop computer, amulti-screen computer, laptop computer, netbook, and so on.

The computing device 1102 may also be implemented as the mobile 1118class of device that includes mobile devices, such as a mobile phone,portable music player, portable gaming device, a tablet computer, amulti-screen computer, a watch or bracelet, devices without screens, andso on. The computing device 1102 may also be implemented as thetelevision 1120 class of device that includes devices having orconnected to generally larger screens in casual viewing environments.These devices include televisions, set-top boxes, gaming consoles, andso on. The computing device 1102 may also be implemented as the IoT 1122class of device, such as a household appliance, a heating and coolingcontrol device, a security system device, and so on.

The techniques described herein may be supported by these variousconfigurations of the computing device 1102 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 1124 via a platform 1126 as describedbelow.

The cloud 1124 includes and/or is representative of a platform 1126 forresources 1128. The platform 1126 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 1124. Theresources 1128 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 1102. Resources 1128 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 1126 may abstract resources and functions to connect thecomputing device 1102 with other computing devices. The platform 1126may also serve to abstract scaling of resources to provide acorresponding level of scale to encountered demand for the resources1128 that are implemented via the platform 1126. Accordingly, in aninterconnected device implementations, implementation of functionalitydescribed herein may be distributed throughout the system 1100. Forexample, the functionality may be implemented in part on the computingdevice 1102 as well as via the platform 1126 that abstracts thefunctionality of the cloud 1124.

In the discussions herein, various different implementations aredescribed. It is to be appreciated and understood that eachimplementation described herein can be used on its own or in connectionwith one or more other implementations described herein. Any of thedevices, methods, and so forth discussed herein can be used inconjunction with any other devices, methods, and so forth discussedherein. Further aspects of the techniques discussed herein relate to oneor more of the following implementations.

A method comprising: obtaining an image of a face; commencing aface-recognition algorithm that recognizes features of the face; inconjunction with recognizing a feature of the face, displaying anindication of the feature on a rendering of the face; and displaying anindication of progress of the face-recognition algorithm near therendering of the face.

Alternatively or in addition to any of the above described methods, anyone or combination of: wherein obtaining the image comprises obtainingthe image via an infra-red camera; wherein obtaining the image comprisesobtaining the image via an RGB camera; wherein displaying an indicationof progress of the face-recognition algorithm comprises rendering edgesof a square in which at least a portion of the face is located; whereindisplaying an indication of progress of the face-recognition algorithmcomprises filling in edges of a rectangle around at least a portion ofthe face; wherein displaying an indication of the feature on a renderingof the face comprises displaying a graph that substantially covers theface in the rendering of the face; wherein displaying an indication ofthe feature on a rendering of the face comprises displaying one or moredots on the rendering of the face next to at least one of: an eye, anose, or a mouth of the face; wherein obtaining the image of the facecomprises obtaining a video including the face, and wherein rendering ofthe face comprises playing back the video while the face-recognitionalgorithm recognizes features of the face.

A system comprising: an image capture device configured to obtain animage of a face of a user of the system; a face-recognition moduleconfigured to recognize features of the face; and a display moduleconfigured to display, in conjunction with the face-recognition modulerecognizing the features of the face, indications of the recognizedfeatures of the face on a rendering of the face, and further configuredto display near the rendering of the face an indication of progress ofthe recognizing of features of the face by the face-recognition module.

Alternatively or in addition to any of the above described computingdevices, any one or combination of: wherein the image capture devicecomprises an infra-red camera; wherein the image capture devicecomprises an RGB camera; wherein the display module is furtherconfigured to display the indication of progress of the recognizing offeatures of the face by rendering edges of a rectangle in which at leasta portion of the face is located; wherein the display module is furtherconfigured to display the indications of the recognized features as dotson the rendering of the face next to at least one of: an eye, a nose, ora mouth of the face; wherein the image capture device is configured toobtain a video including the face, and the display module is configuredto play back the video as the rendering of the face.

A computing device comprising: a processor; and a computer-readablestorage medium having stored thereon multiple instructions that,responsive to execution by the processor, cause the processor to: obtainan image of a face; commence a face-recognition algorithm thatrecognizes multiple features of the face; in conjunction withrecognizing one of the multiple features of the face, display anindication of the recognized feature on a rendering of the face; anddisplay an indication of progress of the face-recognition algorithm nearthe rendering of the face.

Alternatively or in addition to any of the above described computingdevices or systems, any one or combination of: wherein to obtain theimage comprises to obtain the image via an RGB camera, wherein themultiple instructions further cause the processor to obtain an infra-redimage of the face, wherein the face-recognition algorithm recognizesmultiple features of the face, and wherein the rendering of the face isrendering of the image obtained via the RGB camera; wherein to displayan indication of progress of the face-recognition algorithm comprises torender edges of a rectangle in which at least a portion of the face islocated; wherein to display an indication of progress of theface-recognition algorithm comprises to fill in edges of a rectanglearound at least a portion of the face; wherein to display an indicationof the recognized feature on a rendering of the face comprises todisplay a graph that substantially covers the face in the rendering ofthe face; wherein to obtain the image of the face comprises to obtain avideo including the face, and wherein to render the face comprises toplay back the video while the face-recognition algorithm recognizesfeatures of the face.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A method comprising: obtaining an image of aface; commencing a face-recognition algorithm that recognizes featuresof the face; in conjunction with recognizing the features of the face,displaying an indication of one or more of the features on a renderingof the face; and displaying, prior to completion of the rendering, aprogressive indicator indicating progress for facial recognitionprocessing of the face, wherein the displaying presents the progressiveindicator overlaying a portion of the rendering.
 2. The method of claim1, wherein obtaining the image comprises obtaining the image via aninfra-red camera.
 3. The method of claim 1, wherein obtaining the imagecomprises obtaining the image via an RGB camera.
 4. The method of claim1, wherein the displaying of the progressive indicator comprisesdisplaying a graph that covers at least a threshold percentage of theface in the rendering of the face; and transitioning, in response to atleast a threshold number of the one or more features of the face beingrecognized, from displaying the graph to displaying the indication ofthe one or more features on the rendering of the face, and wherein thetransitioning including ceasing displaying the graph.
 5. The method ofclaim 1, wherein displaying of the indication of the one or morefeatures on the rendering of the face comprises displaying one or moredots on the rendering of the face next to at least one of: an eye, anose, or a mouth of the face.
 6. A system comprising: an image capturedevice configured to obtain an image of a face of a user of the system;a face-recognition module including multiple instructions executed torecognize features of the face; and a display module including multipleinstructions executed to display an indication of one or more recognizedfeatures of the face on a rendering of the face, and further configuredto display, prior to completion of the rendering, a progressiveindicator indicating progress for facial recognition processing of theface, wherein the display module presents the progressive indicatoroverlaying a portion of the rendering.
 7. The system of claim 6, whereinthe image capture device comprises an infra-red camera.
 8. The system ofclaim 6, wherein the image capture device comprises an RGB camera. 9.The system of claim 6, wherein the display module further includesinstructions executed that displays the progressive indicator byrendering edges of a rectangle in which at least a portion of the faceis located.
 10. The system of claim 6, wherein the display modulefurther includes instructions executed that displays the indication ofthe one or more recognized features as dots on the rendering of the facenext to at least one of: an eye, a nose, or a mouth of the face.
 11. Thesystem of claim 6, wherein the image capture device is configured toobtain a video including the face, and the display module is configuredto play back the video as the rendering of the face.
 12. A computingdevice comprising: a processor; and a computer-readable storage mediumhaving stored thereon multiple instructions that, responsive toexecution by the processor, cause the processor to: obtain an image of aface; commence a face-recognition algorithm that recognizes features ofthe face; display an indication of one or more features on a renderingof the face; and display, prior to completion of the rendering, aprogressive indicator indicating progress for facial recognitionprocessing of the face, wherein the progressive indicator is presentedoverlaying a portion of the rendering.
 13. The computing device of claim12, wherein to obtain the image comprises to obtain the image via an RGBcamera, wherein the multiple instructions further cause the processor toobtain an infra-red image of the face, wherein the face-recognitionalgorithm recognizes multiple features of the face, and wherein therendering of the face is rendering of the image obtained via the RGBcamera.
 14. The computing device of claim 12, wherein to display anindication of progress of the face-recognition algorithm comprises torender edges of a rectangle in which at least a portion of the face islocated.
 15. The computing device of claim 12, wherein the display ofthe progressive indicator comprises operations that fill in edges of arectangle around at least a portion of the face.
 16. The computingdevice of claim 12, wherein the display of the progressive indicatorcomprises displaying a graph that covers at least a threshold percentageof the face in the rendering of the face; and transitioning, in responseto at least a threshold number of the one or more features of the facebeing recognized, from display of the graph to display of the indicationof the one or more features on the rendering of the face, and whereinthe transition including ceasing display of the graph.
 17. The computingdevice of claim 12, wherein to obtain the image of the face comprises toobtain a video including the face, and wherein to render the facecomprises to play back the video while the face-recognition algorithmrecognizes features of the face.
 18. The method of claim 1, furthercomprising: automatically removing, from display, the progressiveindicator upon completion of the rendering of the image.
 19. The methodof claim 1, wherein the displaying of the progressive indicatorcomprises rendering the progressive indicator as a progressively updatedgeometric shape, and wherein a display state of the progressivelyupdated geometric shape is correlated with a state of completion of thefacial recognition processing.
 20. The method of claim 1, wherein theprogressive indicator is a progress bar, and wherein the displayingfills the progress bar as indication of a state of completion of thefacial recognition processing.